$(function(){
	/**
	 * 查询我分享的文件
	 */
	selectShareFile();
	$("ul li a[href$='shareList.jsp']").addClass("active");
	/**
	 * 选中所有的checkBox 事件代表选中所有
	 */
	$('table th input:checkbox').on('click', function(){
		var p = this;
		$(p).closest('table').find('tr > td:first-child input:checkbox').each(function(){
			this.checked = p.checked;
		});
	
		showCheckedCount();		//修改选中数
	});
	/**
	 * 单个checkBox事件
	 */
	$("#shareList").on("click",".checkShare",function(){
		
		showCheckedCount();
		
	});
	/**
	 * 取消分享
	 */
	$("#shareList").on("click",".deleteShareFile",function(){
		
		deleteShareFile($(this).attr("key"));
	});
	/**
	 * 同时取消多个选中的分享文件
	 */
	$("#deleteButton").on("click",".deleteShareAllFile",deleteShareAllFile);
	
	/**
	 * 修改分享信息
	 */
	$("#shareList").on("click",".updateShareFile",function(){
		updateShareFile(this,$(this).attr("folderId"));
	});
	/**
	 * 去掉选中的人员
	 */
	$("#target").on("click",".deletePRJ",function(){
		
			deletePRJ(this);
	});
	
	/**
	 * 添加人员
	 */
	
	$("#personDiv").on("click",".addPerson",function(){
		addPerson();
	});
	
	
	/**
	 * 添加角色
	 */
	$("#roleDiv").on("click",".addRole",function(){
		addRole();
	});
	
	
	/**
	 * 添加项目
	 */
	$("#projectDiv").on("click",".addProject",function(){
		addProject();
	});
	
	
	/**
	 * 修改项目updateShare 保存的
	 */
	
	$("#updateShareDiv").on("click",".updateShare",function(){
		updateShare();
	});
	
});
/**
 * 查询分享的文件
 */
function selectShareFile(){
	Otod.ajax({
		url:ctx+'/cd/Share/selectShareFile.do',
		type:"GET",
		successFn:function(data){
			
			baseSelectShareFile(data);
		}
	});
}
/**
 * 向页面添加数据的基础方法
 */
function baseSelectShareFile(data){
	
		var showShareListMtp = $('#showShareListMtp').html();
		Mustache.parse(showShareListMtp);
		var rendered = Mustache.render(showShareListMtp,{
				data: data,
				isShareType: function(){
					return switchShreType(this.shareType);
				},
				isFolderType: function(){
					return  switchFolderType(this.folderType);
				}
		});
		$("#shareList").html(rendered);		
}



/**
 * 显示选中文件数
 */
function showCheckedCount(){
	var choiceNumbers = $('#shareList .checkShare:checked').length;
	var html = "<lable>文件名</lable>";
	if(choiceNumbers>0){
		html = '<lable id="file_action_word">已选中'+choiceNumbers+'个文件/文件夹</lable>&nbsp;&nbsp;&nbsp;&nbsp;<button type="button" class="btn btn-xs btn-checkBox icon-trash deleteShareAllFile" data-toggle="button" >取消分享</button>';
	}
	
	$("#deleteButton").html(html);	
	
}
/**
 * 取消分享
 */
function deleteShareFile(uuid){
	Otod.Msg.confirm('您确定要取消分享',"取消分享", delOk);
	function delOk(){
		Otod.ajax({		
			url:ctx+'/cd/Share/deleteShareFile.do',
			data:{uuid:uuid},
			type:"GET",
			successFn:function(){
				Otod.Msg.info("取消分享成功");
				selectShareFile();
			}
		});
	}
}

/**
 * 取消分享多个
 */
function deleteShareAllFile(){
		Otod.Msg.confirm('您确定要取消分享',"取消分享", delOk);
		function delOk(){
			//得到所有选中的id
			var checkedArrays = $('#shareList .checkShare:checked');
			var checkedStr = "";
			for (var i = 0; i < checkedArrays.length; i++) {
					checkedStr=checkedStr+","+checkedArrays[i].value;
			}
			Otod.ajax({
				url:ctx+'/cd/Share/deleteShareFile.do',
				data:{uuid:checkedStr},
				type:"GET",
				successFn:function(){
					Otod.Msg.info("取消分享成功");
					selectShareFile();
					//删除之后清空相关数据
					emptyCheckBoxOrFileName();
				}
			});
	}
}




/**
 * 修改分享
 * @param uuid
 */
/**
 * 弹出分享的页面
 */
function updateShareFile(btn,uuid,folderId){
	
	//设置分享的文件的uuid
	$("#shareUuid").val(uuid);
	
	 
	resetStepModen();
	//弹出对话框
	showModal(btn,"updateShareModen",uuid);	
}
/**
 * 重置shareFileName moden
 */
function resetStepModen(){
	$("#updateShareModen-from")[0].reset();
	//$("#stepModen-form [name='tpId']").val(tpId);		//初始化tpId
	$("#shareType").val("");
	
	$("#person button + button").remove();
	$("#role button + button").remove();
	$("#project button + button").remove();
}

//显示修改的modal
function showModal(btn,modal,uuid){

	$("#target").hide();
	
	//通过文件夹的id 查询是否分享过 如果分享就重新加载数据
	
	
	var modalObj = getJqueryObj(modal);
	//显示弹出层
	modalObj.modal();
	//调用查询数据
	selectShare(uuid);
	//这句是设置位置的
	//setModelFlowBtn(modalObj.children(".modal-dialog").get(0),btn);
}

/**
 * 查询分享文件的信息
 * @param uuid
 */
function selectShare(uuid){
	Otod.ajax({
		url:ctx+'/cd/Share/queryForListShare.do',
		data:{uuid:uuid},
		type:'GET',
		successFn:function(data){
	
			//设置选择类型
			$("#shareType").val(data.shareType);
			//把角色显示出来
			if(data.shareType=="40020001"){
				$("#target").show();
			}else{
				$("#target").hide();
			}
				//得到数据
			
				$.each(data.shareAuthList,function(i,n){
					
					//人员
					if(n.targetType=="40030001"){
						selectPerson(n.targetId);
					//角色
					}else if(n.targetType=="40030002"){
						
						selectRole(n.targetId);
					//项目
					}else if(n.targetType=="40030003"){
						selectProjcet(n.targetId);
						
					}
				});		
		}
	});
}

/**
 * 当选择项目类型改变的时候
 */
$("#shareType").change(function() {	
	if($(this).val()=="40020001"){
		$("#target").show();
	}else{
		$("#target").hide();
	}
});


/********************************查询人员信息*********************************************/

/**
 * 查询所有人员的信息
 */
function selectPerson(targetId){
	
	$("#stepModen-btn-save").val("privatePerson");
	//查询出所有的人员信息
	var sb = new StringBuffer();
	Otod.ajax({
		url: ctx + '/cd/doc/selectPerson.do',
		type:"POST",
		successFn : function(data){	
			
			$.each(data,function(i,n){
			
				if(n.empNo==targetId){
					basePerson(n,sb);
					return;
				}
				
			});
		
			
		}	
	});

}
/**
 * 动态添加人员信息
 * @param n
 * @param sb
 */
function basePerson(n,sb){

	sb.append('	 ');
	sb.append('<button type="button" class="btn btn-xs btn-checkBox deletePRJ active" data-toggle="button" value="'+n.empNo+'"><i class="icon-ok"></i>');
	sb.append(n.empName);
	sb.append('</button>');
	
	$("#person").children().last().after(sb.toString());
}
/************************************查询角色*********************************************/
/**
 * 查询所有的角色
 */

function selectRole(targetId){
	$("#stepModen-btn-save").val("privateRole");
	//查询出所有的人员信息
	var sb = new StringBuffer();
	Otod.ajax({
		url: ctx + '/cd/doc/selectRole.do',
		type:"POST",
		successFn : function(data){	
			
			$.each(data,function(i,n){
				
				if(n.uuid==targetId){
					baseRole(n,sb);
					return;
				}
			});
		
			
		}	
	});
}

/**
 * 动态添加角色信息
 * @param n
 * @param sb
 */
function baseRole(n,sb){
	sb.append('	 ');
	sb.append('<button type="button" class="btn btn-xs btn-checkBox deletePRJ checkBoxButton active" data-toggle="button" value="'+n.uuid+'"><i class="icon-ok"></i>');
	sb.append(n.roleName);
	sb.append('</button>');
	$("#role").children().last().after(sb.toString());
}

/***************************************************************************************/
/*************************************查询项目***************************************************/
/**
 * 查询项目 
 */
function selectProjcet(targetId){
	$("#stepModen-btn-save").val("privateProject");
	//查询出所有的人员信息
	var sb = new StringBuffer();
	Otod.ajax({
		url: ctx + '/cd/doc/selectProjcet.do',
		type:"POST",
		successFn : function(data){	
			$.each(data,function(i,n){

				if(n.uuid==targetId){
					basePrject(n,sb);
					return;
				}
			});
		
			
		}	
	});
}


/**
 * 动态添加项目信息
 * @param n
 * @param sb
 */
function basePrject(n,sb){
	sb.append('	 ');
	sb.append('<button type="button" class="btn btn-xs btn-checkBox checkBoxButton active deletePRJ" data-toggle="button" value="'+n.uuid+'" ><i class="icon-ok"></i>');
	sb.append(n.prjName);
	sb.append('</button>');
	$("#project").children().last().after(sb.toString());
}

/**
 *点击 人员 项目 角色 去掉选中的
 */
function deletePRJ(btn){
	//删除点击的button
	$(btn).remove();
}
/**
 * 添加人员
 */
function addPerson(){
	//得到选择框的数据
	var empNo=$("#empNo").val();
	var empName=$("#empNo").find("option:selected").text();
	
	if(empNo==null||empNo==""){
		Otod.Msg.info("请选择要添加的人员");
		return
	}
	
	//判断当前页面是否存在相同的
	
	//得到所有选中的person下面所有 button的值
	var allPerson=allButton($("#person"));
	var allPerSonSplit = allPerson.split(";");
	
	for (var i = 0; i < allPerSonSplit.length; i++) {
		
		if(allPerSonSplit[i]==empNo){
			Otod.Msg.info("该人员已经存在");
			return;
		}
	}
	var sb  = new StringBuffer();
	
	sb.append('	 ');
	sb.append('<button type="button" class="btn btn-xs btn-checkBox checkBoxButton deletePRJ active" data-toggle="button" value="'+empNo+'" ><i class="icon-ok"></i>');
	sb.append(empName);
	sb.append('</button>');
	
	$("#person").children().last().after(sb.toString());
}


/**
 * 添加角色
 */
function addRole(){
	//得到选择框的数据
	var uuid=$("#roleNo").val();
	var roleName=$("#roleNo").find("option:selected").text();
	if(roleNo==null||roleNo==""){
		Otod.Msg.info("请选择要添加的人员");
		return
	}
	//判断当前页面是否存在相同的角色
	//得到所有选中的role下面所有 button的值
	var allRole=allButton($("#role"));
	var allRoleSplit = allRole.split(";");
	for (var i = 0; i < allRoleSplit.length; i++) {
		
		if(allRoleSplit[i]==uuid){
			Otod.Msg.info("该角色已经存在");
			return;
		}
	}
	var sb  = new StringBuffer();
	sb.append('	 ');
	sb.append('<button type="button" class="btn btn-xs btn-checkBox checkBoxButton deletePRJ active" data-toggle="button" value="'+uuid+'" ><i class="icon-ok"></i>');
	sb.append(roleName);
	sb.append('</button>');
	
	$("#role").children().last().after(sb.toString());
}

/**
 * 添加项目
 */
function addProject(){
	//得到选择框的数据
	var uuid=$("#prjName").val();
	var prjName=$("#prjName").find("option:selected").text();
	
	if(empNo==null||empNo==""){
		Otod.Msg.info("请选择要添加的人员");
		return
	}
	//判断是否存在
	//得到所有选中的person下面所有 button的值
	var allProject=allButton($("#project"));
	var allProjectSplit = allProject.split(";");
	
	for (var i = 0; i < allProjectSplit.length; i++) {
		if(allProjectSplit[i]==uuid){
			Otod.Msg.info("该人员已经存在");
			return;
		}
	}
	var sb  = new StringBuffer();
	sb.append('	 ');
	sb.append('<button type="button" class="btn btn-xs btn-checkBox checkBoxButton deletePRJ active" data-toggle="button" value="'+uuid+'" ><i class="icon-ok"></i>');
	sb.append(prjName);
	sb.append('</button>');
	
	$("#project").children().last().after(sb.toString());
}

/**
 * 得到人员 角色 项目 的数据
 * @param btn
 * @returns
 */
function allButton(btn){
	var strs = btn.children(".active");
	var sb = new StringBuffer();
	strs.each(function(i,t) {
		sb.append(";").append($(t).val());
	});
	return sb.toString().substring(1);
	
}

/**
 * 保存
 */
function updateShare(){
	//得到所有选中人员
	var person = allButton($("#person"));
	var role = allButton($("#role"));
	var project = allButton($("#project"));
	var shareType = $("#shareType").val();
	var uuid =$("#shareUuid").val();
	
	if(shareType==""){
		Otod.Msg.info("请选择分享方式");
		return;
	}
	
	/**
	 * 公开分享
	 */
	if(shareType=="40020002"){

		Otod.ajax({
			url:ctx+'/cd/doc/publicShare.do',
			data:{uuid:uuid},
			type:"GET",
			successFn:function(data){
				Otod.Msg.info("分享成功");
			}
		});
		return
	}
	
	if(person==""&&role==""&&project==""){
		Otod.Msg.info("请选择分享的类别");
		return;
	}

	
	Otod.ajax({
		url:ctx+'/cd/doc/updateShare.do',
		data:{person:person,role:role,project:project,shareType:shareType,uuid:uuid},
		type:"GET",
		successFn:function(data){
			Otod.Msg.info("分享成功");
		}
	});
}





/**
 * 转换文档类型类型
 * @param type
 */
function switchFolderType(type){
	if(type=="40010001"){
		return "文件夹";
	}else if(type=="40010002"){
		return "文件";
	}
}

/**
 * 转换分享类型
 * @param type
 */
function switchShreType(type){
	if(type=="40020001"){
		return "私密";
	}else if(type=="40020002"){
		return "公开";
	}
}

/**
 * 清空数据 是让checkBox 不选中
 */
function emptyCheckBoxOrFileName(){
	$("#deleteButton").html('<lable>文件名</lable>');	
	//删除之后让最上面的checkBox不选中
	//$('.ace').attr("checked",false); --直接通过类名删除
	$('table th input:checkbox').attr("checked",false);
	
}



